package Control;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;

import javax.swing.JOptionPane;

import View.VSpeichern;

/**
 * Steuerung der View Beschluss
 * 
 * @author Niklas Wazal
 * @version 1.1.3 - 09.09.2014
 */
public class CSpeichern {
	public CDatabase db = new CDatabase();
	public static CSpeichern instance = null;
	public VSpeichern viewSpeichern;
	public CStartDialog startDialog = CStartDialog.getInstance();

	/**
	 * Erstellt Singleton
	 * 
	 * @return CSpeichern instance
	 */
	public static CSpeichern getInstance() {
		if (instance == null) {
			instance = new CSpeichern();
		}
		return instance;
	}

	/**
	 * Konstruktor
	 */
	private CSpeichern() {
		this.viewSpeichern = new VSpeichern();

		init();
		registerEvents();

	}

	/**
	 * Initatiale Methode
	 */
	private void init() {
		startDialog.reiterHinzufuegen("Speichern", viewSpeichern);
	}

	// TODO
	/**
	 * Holt alle Daten und legt diese in das Model
	 * 
	 * @throws InterruptedException
	 */
	private void protokollSpeichern() throws InterruptedException {
		CVorbereitung cVorbereitung = CVorbereitung.getInstance();
		String dateiname = viewSpeichern.getTf_dateiname().getText();
		String user = viewSpeichern.getTf_user().getText();
		String pw = viewSpeichern.getTf_passwort().getText();
		String url = "http://it.gso-koeln.de/bscw/bscw.cgi/2516710";

		cVorbereitung.mProtokoll.setDateiname(viewSpeichern.getTf_dateiname()
				.getText());

		// cVorbereitung.db.connect();
		// cVorbereitung.db.protokollSpeichern(cVorbereitung.mProtokoll);

		PDFGenerierung test = new PDFGenerierung();
		test.genPDF(viewSpeichern.getTf_dateiname().getText(),
				cVorbereitung.mProtokoll);

		try {
			WebDavAnbindung web = new WebDavAnbindung(dateiname, url, user, pw);
			JOptionPane.showMessageDialog(null, web.copyFileToBSCW(), "Meldung", JOptionPane.PLAIN_MESSAGE);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	class MyMouseAdapter extends MouseAdapter {
		public void mouseClicked(MouseEvent event) {
			Object object = event.getSource();
			if (object.equals(viewSpeichern.getBtn_speichern())) {
				try {
					protokollSpeichern();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				startDialog.reiterWechseln(0);

			}
		}

	}

	/**
	 * Methode um Events mit der View zu steuern
	 */
	public void registerEvents() {
		MyMouseAdapter mouse = new MyMouseAdapter();
		viewSpeichern.getBtn_speichern().addMouseListener(mouse);
	}

}
